package com.hpe.fastfood.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSONObject;
import com.hpe.fastfood.pojo.Bussiness;
import com.hpe.fastfood.pojo.User;
import com.hpe.fastfood.service.LoginService;
import com.hpe.fastfood.util.PropertiesUtil;

/**
 * @ClassName: LoginController
 * @Description:TODO 登陆注册
 * @author: sunwen
 * @date: 2018年11月22日 下午3:45:38
 */
@Controller
@RequestMapping("login")
public class LoginController {

	@Autowired
	private LoginService loginService;

	/**
	 * @Description:TODO跳转登录页面
	 * @author:sunwen
	 * @date: 2018年11月22日 下午1:40:05
	 * @return
	 */
	@RequestMapping(value = "toLogin")
	public String toLogin() {
		return "login";
	}

	/**
	 * @Description:TODO登陆
	 * @author:sunwen
	 * @date: 2018年11月22日 下午1:40:25
	 * @param request
	 * @param name
	 * @param pwd
	 * @param role
	 * @return
	 */
	@RequestMapping(value = "login")
	@ResponseBody
	public String login(HttpServletRequest request, String name, String pwd, String role) {
		JSONObject json = new JSONObject();
		User loginUser = null;
		Bussiness loginBussiness = null;
		PropertiesUtil p = new PropertiesUtil();
		String admin = p.getValue("admin");
		String adminpwd = p.getValue("adminpwd");
		if (role.equals("user")) {
			try {
				loginUser = loginService.loginUser(name, pwd);
			} catch (Exception e) {
				e.printStackTrace();
			}

		} else if (role.equals("bussiness")) {
			try {
				loginBussiness = loginService.loginBussiness(name, pwd);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		// 2 判断 如果登录成功，往session里存放 登录信息()
		if (loginUser != null) {
			HttpSession session = request.getSession();// 获取session
			session.setAttribute("loginUser", loginUser);// 添加值
			json.put("msg", "欢迎用户登录");
			json.put("url", "shop/selectShop");
		} else if (loginBussiness != null) {
			HttpSession session = request.getSession();// 获取session
			session.setAttribute("loginBussiness", loginBussiness);// 添加值
			json.put("msg", "欢迎商户登录");
			json.put("url", "bussiness/toBussiness");
		} else if (role.equals("admin") && name.equals(admin) && pwd.equals(adminpwd)) {
			HttpSession session = request.getSession();// 获取session
			session.setAttribute("name", name);// 添加值
			json.put("msg", "欢迎管理员登录");
			json.put("url", "admin/toAdmin");
		} else {
			json.put("msg", "登录失败");
			json.put("url", "login/toLogin");
		}
		return json.toString();
	}

	/**
	 * @Description:TODO注销登陆
	 * @author:sunwen
	 * @date: 2018年11月22日 下午2:34:03
	 * @param request
	 * @return
	 */
	@RequestMapping(value = "loginOut")
	public String loginOut(HttpServletRequest request) {
		HttpSession session = request.getSession();// 获取session
		session.removeAttribute("loginUser");// 移除登录信息
		session.removeAttribute("loginBussiness");// 移除登录信息
		session.removeAttribute("name");// 移除登录信息
		return "redirect:/login/toLogin.do";// 重定向到 论坛首页
	}

	/**
	 * @Description:TODO跳转用户注册页面
	 * @author:sunwen
	 * @date: 2018年11月22日 下午2:35:18
	 * @return
	 */
	@RequestMapping(value = "toRegister")
	public String toRegister() {
		 return "register_user";
		//return "register_buss";
	}
	/**     
	 * @Description:TODO跳转商户注册页面
	 * @author:sunwen
	 * @date:   2018年11月27日 上午9:32:43    
	 * @return      
	 */  
	@RequestMapping(value = "toRegisterBuss")
	public String toRegisterBuss() {
		 //return "register_user";
		return "register_buss";
	}
	/**
	 * @Description:TODO注册用户
	 * @author:sunwen
	 * @date: 2018年11月22日 下午3:27:30
	 * @param user
	 * @return
	 */
	@RequestMapping(value = "registerUser", method = RequestMethod.POST)
	public String registerUser(User user) {
		int res = loginService.checkUsername(user.getUserName());
		if (res == 1) {// 注册失败，姓名重复
			return "redirect:/login/toRegister";
		} else {
			try {
				res = loginService.registerUser(user);
			} catch (Exception e) {
				e.printStackTrace();
			}
			return "redirect:/login/toLogin";
		}
	}

	/**
	 * @Description:TODO商家注册
	 * @author:sunwen
	 * @date: 2018年11月22日 下午3:45:17
	 * @param bussiness
	 * @return
	 */
	@RequestMapping(value = "registerBuss", method = RequestMethod.POST)
	public String registerBuss(Bussiness bussiness) {
		int res = loginService.checkBussname(bussiness.getBussinessName());
		if (res == 1) {// 注册失败，姓名重复
			return "redirect:/login/toRegisterBuss";
		} else {
			try {
				res = loginService.registerBuss(bussiness);
			} catch (Exception e) {
				e.printStackTrace();
			}
			return "redirect:/login/toLogin";
		}
	}
}
